﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using DTO;
using BUS;
namespace DuanGiuaKy
{
    public partial class frm_adm_qlMonHoc : Form
    {
        int tompyde = 0;
        //member variables
        string MaMH, TenMH, MoTa, LoaiMon;
        string SoTC;
        public frm_adm_qlMonHoc()
        {
            InitializeComponent();
            tompyde = 1;
        }
        public frm_adm_qlMonHoc(string mamh, string tenmh,string sotc, string loaimon, string mota)
        {
            InitializeComponent();
            tompyde = 2;
            //
            MaMH = mamh;
            TenMH = tenmh;
            SoTC = sotc;
            LoaiMon = loaimon;
            MoTa = mota;
        }
        private void frm_qlMonHoc_Load(object sender, EventArgs e)
        {
            switch (tompyde)
            {
                case 1:
                    this.Text = "Thêm mới môn học";
                    btnSubmit.Text = "Thêm mới";
                    tompyde = 1;
                    break;
                case 2:
                    this.Text = "Sửa thông tin môn học";
                    btnSubmit.Text = "Sửa";
                    tompyde = 2;
                    txtMaMH.Text = MaMH;
                    txtTenMH.Text = TenMH;
                    txtSoTC.Text = SoTC;
                    txtMota.Text = MoTa;
                    cboLoaiMH.Text = LoaiMon;
                    txtMaMH.Enabled = false;
                    break;
                default:
                    break;
            }
        }
        private bool IsNumeric(string s)
        {
            float output;
            return float.TryParse(s, out output);
        }
        private void btnHuy_Click(object sender, EventArgs e)
        {
            DialogResult res = MessageBox.Show("Bạn có chắc muốn hủy thao tác", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if(res == DialogResult.OK)
                this.Close();
        }
        private int errorlog()
        {
            int error = 0;
            if (txtMaMH.Text.Length == 0)
                error++;
            if (txtTenMH.Text.Length == 0)
                error++;
            if (txtSoTC.Text.Length == 0)
                error++;
            if (cboLoaiMH.Text.Length == 0)
                error++;
            return error;
        }
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            if (tompyde == 1)
            {
                if (errorlog() == 0)
                {
                    MonHoc_DTO mh = new MonHoc_DTO(txtMaMH.Text, txtTenMH.Text, Convert.ToInt32(txtSoTC.Text), cboLoaiMH.Text, txtMota.Text);
                    MONHOC_BUS.themMH(mh);
                    this.Close();
                } else
                {
                    MessageBox.Show("Nhập đầy đủ thông tin để tiếp tục", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else
                if (tompyde == 2)
                {
                    if (errorlog() == 0)
                    {
                        MonHoc_DTO mh = new MonHoc_DTO(txtMaMH.Text, txtTenMH.Text, Convert.ToInt32(txtSoTC.Text), cboLoaiMH.Text, txtMota.Text);
                        MONHOC_BUS.suaMH(mh);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Nhập đầy đủ thông tin để tiếp tục", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
        }

        private void txtMaMH_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                txtTenMH.Focus();
        }

        private void txtMaMH_Leave(object sender, EventArgs e)
        {
            if(txtMaMH.Text.Length == 0)
            {
                MessageBox.Show("Nhập mã môn học để tiếp tục!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtMaMH.Focus();
            } 
            else if (txtMaMH.Text.Length > 10)
            {
                MessageBox.Show("Mã môn học không thể dài hơn 10 ký tự!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtMaMH.Focus();
            }
            else if (MONHOC_BUS.kiemTraMaMH(txtMaMH.Text))
            {
                MessageBox.Show("Mã môn học đã tồn tại, vui lòng kiểm tra lại!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtMaMH.Focus();
            }
        }

        private void txtTenMH_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                txtTenMH.Focus();
        }

        private void txtTenMH_Leave(object sender, EventArgs e)
        {
            if (txtTenMH.Text.Length == 0)
            {
                MessageBox.Show("Nhập tên môn học để tiếp tục!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtTenMH.Focus();
            } 
        }

        private void cboLoaiMH_Leave(object sender, EventArgs e)
        {
            if (cboLoaiMH.Text == "Chọn loại môn học..." || cboLoaiMH.Text.Length == 0)
            {
                MessageBox.Show("Chọn loại môn học để tiếp tục!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cboLoaiMH.Focus();
            } else if(cboLoaiMH.Text != "Bắt buộc" || cboLoaiMH.Text!="Tự chọn")
            {
                MessageBox.Show("Dữ liệu bạn chọn không đúng!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                cboLoaiMH.Focus();
            }
        }

        private void txtSoTC_Leave(object sender, EventArgs e)
        {
            if (txtSoTC.Text.Length == 0)
            {
                MessageBox.Show("Nhập số tín chỉ để tiếc tục!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtSoTC.Focus();
            } 
            else if (!IsNumeric(txtSoTC.Text))
            {
                MessageBox.Show("Nhập chữ số!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtSoTC.Focus();
            }
        }

        private void txtSoTC_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                txtSoTC.Focus();
        }
    }
}
